From 9fd0458f1ccf5d5c7c0317db8844a1ce43a15624 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 25 May 2011 20:19:08 -0400 Subject: [PATCH] Simplify GtkLockButton Now it is actually just a button, which makes things simpler and is closer to what the designers want. --- .../gtk/images/lockbutton-locked.png | Bin 1687 -> 1634 bytes .../reference/gtk/images/lockbutton-sorry.png | Bin 1347 -> 1262 bytes .../gtk/images/lockbutton-unlocked.png | Bin 1381 -> 1394 bytes docs/reference/gtk/images/lockbutton.png | Bin 2355 -> 2387 bytes gtk/gtklockbutton.c | 289 +++++------------- gtk/gtklockbutton.h | 6 +- 6 files changed, 78 insertions(+), 217 deletions(-) diff --git a/docs/reference/gtk/images/lockbutton-locked.png b/docs/reference/gtk/images/lockbutton-locked.png index ae4386a65a54ccb56fbdb62ea797217bf1f68be5..dec1e7cd016f29058375f18a1930dbedc4280207 100644 GIT binary patch delta 1593 zcmV-92FCf94dM(TiBL{Q4GJ0x0000DNk~Le0001L0000i2m$~A00Kg~v5_G@e+3!< z5C{iw#9WK~!ko?V5W`Q&$|v&$$;N^tSc|YUaeO1yLtHn3K8qV8%qnxeZ05 znKN#v3=`Ce5;y0j!S}|ZMnT2*W5{%7Ph;jXmTYF2A-V@p6%<<0Knu48LQ8Y+`R$Lk zmn+cP2Qvom@2}p|bAIQZPrtwOfBW5Yi<_F7kYvFcB_WXTN%$mu5c89&v zP{~?Z0FVG7gfPY`rD{a{2u8+q{i=K6a{cCYwMwnm>%+prBz6cPp69Ept63|XI3^Ke z{FvZnt*lO`lh_GH)3jc%XRWMX!3zL1O-qs6gne|HNG9WfYg zwcG6oAz5VP@c8(QjPzKYuFHP$4B$f$D7&oH*><}_;NIHSR#smA&#H=jdq0oU>-#Ff z-cetEexcp&2oDdRGdo48>W>g=X=(lbhf5BJBfsEq-tHX~MLk3K0u&#rG8h10_N*E2 zuSj>10szAE7r*(gs>%Qae-K8J`n+0)(}@sb7)A(EjIlzYKnQhoI02xq=AvHCyyAhv z=RS;&@v3Q}-nQ=8eW>s#&+|fy$#j3_>u*_YE#8Jy*VLrEF_+^w2;64PNv)~5 z8{8UuUwuoLEG7gJMvV+weT4Aj(HkX%@H`Jdyp07wgplB*E&NVTe?{;vNSo_ptY0?@ zohlXk@i7(%!8rJx0nk%}FZ8_+L;%ILCjc}wG_Kq5(WF-=mX+UVY&2`s>UZ8=lst8^ z(7`ptX0shVaq8w@fAbu#*S(Pb-qN8lLl8nvr}N8m=YP9;)n;pn)$7)0uhD8W!a$?Z zv^jVC>a3Nc6GjD5f1Eyvhc^EN0^Za|2(eh2qO{r%bFv2x81Unz%X|0dPna;C=Ltes z*qgTP{ET6k{d@Al!^6)M6@UE6mV*6z7=|f4dg6Y4{l*PB1EQnM7K=)$^ms-_lWEJ= z9V;_eB#e47xK)Sr)WJ4e4;B_SHd=a|*wW-~U%P%obaZs)e~NUCR^x{T;nC6)TwJG2 znWR>$FvioSB_BU^#$vI!)rSBO)Eevlt*AVC?66!RM+hxhyr`t)*Rt{(uOz*E`KK!f z_I)vU@N*dBp-hahx(5#*o;rOtGh^Afv7-?V_(7`|)c5l*CBI)S^}e;c+i%~gzI~@U zPOnQ#OZ65Ye*lQ%H~<3RE(Umxb0rY*!T>-flOcq7LVy6qZuK=bTI6y@sqF8Xl&0x{ zg9e$+X0zGCaa?qCRQE;wS$5s-aKsE95=yj%RJb^u9sXA{4xgPBa;CP{!h;?7!sm_Z{do8)L%5ePT>H7KytkwEQ>9r%rP9#sA?9x|f40~n;0EI%%b6iD5 zrP*SM8S;F5d|dv)!j{&yjt=MPvqdybCypD-FwFRu5)T|KG@49=5SC>H4-~?g8Otb& zI#6)ff1l#We&LfI3>y}^EqC+1dvzN(ZO+KdDk{D(d)Cb5=}R%j2zn^U0U$am zYU0GC-0i!+I)4!Wa@MVlhzMV`I(u2hN~6*A>86d5k&ytfc1>1XtUh12`sJ+qz+kxj^~GvwJ>QDw@@A#i zN~b4J@6s)#)DeXGeD`tPoN$Xme~O~SV}(m$*}^44?!z5%e~;VFc8a2e9%2tq_P{E@ zf4vX&xpRXj`mUqzox6mDZ~na0d8u#uTOxUmQKfes!lr^KnhGR*CG|<>8=p|AO4hw9 zcsxF}O3gO28m&fxD1d8jZdNH(ewEGb_V%h7+ rSIPW6GLTHdC*hOuN%$o5YX1RPb_k{s5AzK500000NkvXXu0mjf^xhS~ delta 1646 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 j<*-xf983+UH z2SgSt6hT1n5qtz6!AFGPTSAHPRXHW+z@G!cq<}FdfB*mxLQcc2&s@(Yu=9WNt^4|{ zeaT$1#bSwxi6QI&0J1C(4h{;FLQ#GZgm8i26($9<*-Y4}LesRxVi6{Ve~^L~V@%UD ziQIVv{Q~jtVuan|mkxq2VtgQMe3B%cJoTNm|C)1d4g+y2aRnV=ChHNSfQ*CK>u86gyjpUSel#GW20zMDfsq9`i;?e;rYtX4I6f9>`=%7?4{{T#=c zO(qx|eQ2N;m?LLI@!Q0QmLnxijZ_e4VjzdlLYlp{}-g0KnU9O`q;8FWZ`%^JuhpP*lJW2%#a2!V9aQ z&9~1GKm7Y21Lg0$otTsu_ek7pufBqieEG^%m)rHjk3W@_f0h`H`UEz?Xf!|yDi&_r z?aeK%Wu+yB1$h95`bR=(QOJEb?6edl_bI;P-RJJzvBX4HqgkaWX_{W0p6+ls9F8%M z$CH|x;ycveF84Vl$zaqk&CWft!X+Gj7%W^E%v0%f+L`GYQJhk~dOV)d(NUdFmz0zU zAsiYSR#s|ne-oQFJ)NJI+q!G7BuPt9xI~0+5#ATr6b1k|C8sJbm)oGv$jn^(#evSL z=^2;H-PL`Zrs<->0+wYTf2^qEKqqgrA%ukc)gl0Z0t^a^n*-4>TryY zsn@2Zf2F3Tq^Oghos|{bta{ckZy1UN=rgc;diX$3QIy(a3D^b17ouBbWvckV)-bwmRnAoz&){VVvCQ%`~>l+5l2Uow|0ObA+?mOxa& zO-xL18b8kq{k$SH=bXF#*LCuSl{Y?4!)0e>GAA$z3*#fXFQVWLrGg_8?8Jo#!AI~B ed;}knfbut1O^`PuUyjZI0000_C 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 literal 2355 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 g_free (priv->tooltip_not_authorized); + g_object_unref (priv->icon_lock); + g_object_unref (priv->icon_unlock); + g_object_unref (priv->label_group); + if (priv->cancellable != NULL) { g_cancellable_cancel (priv->cancellable); @@ -153,18 +144,11 @@ gtk_lock_button_get_property (GObject *object, break; case PROP_TEXT_LOCK: - g_value_set_string (value, - gtk_label_get_text (GTK_LABEL (priv->label_lock))); + g_value_set_string (value, gtk_label_get_text (GTK_LABEL (priv->label_lock))); break; case PROP_TEXT_UNLOCK: - g_value_set_string (value, - gtk_label_get_text (GTK_LABEL (priv->label_unlock))); - break; - - case PROP_TEXT_NOT_AUTHORIZED: - g_value_set_string (value, - gtk_label_get_text (GTK_LABEL (priv->label_not_authorized))); + g_value_set_string (value, gtk_label_get_text (GTK_LABEL (priv->label_unlock))); break; case PROP_TOOLTIP_LOCK: @@ -208,138 +192,84 @@ gtk_lock_button_set_property (GObject *object, gtk_label_set_text (GTK_LABEL (priv->label_unlock), g_value_get_string (value)); break; - case PROP_TEXT_NOT_AUTHORIZED: - gtk_label_set_text (GTK_LABEL (priv->label_not_authorized), g_value_get_string (value)); - break; - case PROP_TOOLTIP_LOCK: g_free (priv->tooltip_lock); priv->tooltip_lock = g_value_dup_string (value); - update_tooltip (button); break; case PROP_TOOLTIP_UNLOCK: g_free (priv->tooltip_unlock); priv->tooltip_unlock = g_value_dup_string (value); - update_tooltip (button); break; case PROP_TOOLTIP_NOT_AUTHORIZED: g_free (priv->tooltip_not_authorized); priv->tooltip_not_authorized = g_value_dup_string (value); - update_tooltip (button); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } + + update_state (button); } static void gtk_lock_button_init (GtkLockButton *button) { GtkLockButtonPrivate *priv; + gchar *names[3]; button->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE (button, GTK_TYPE_LOCK_BUTTON, GtkLockButtonPrivate); + priv->label_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH); priv->box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + gtk_widget_set_halign (priv->box, GTK_ALIGN_CENTER); + gtk_widget_set_valign (priv->box, GTK_ALIGN_CENTER); + gtk_widget_show (priv->box); gtk_container_add (GTK_CONTAINER (button), priv->box); - - priv->eventbox = gtk_event_box_new (); - gtk_event_box_set_visible_window (GTK_EVENT_BOX (priv->eventbox), FALSE); - gtk_container_add (GTK_CONTAINER (priv->box), priv->eventbox); - gtk_widget_show (priv->eventbox); priv->image = gtk_image_new (); - gtk_container_add (GTK_CONTAINER (priv->eventbox), priv->image); + gtk_box_pack_start (GTK_BOX (priv->box), priv->image, FALSE, FALSE, 0); gtk_widget_show (priv->image); - - priv->notebook = gtk_notebook_new (); - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), FALSE); - gtk_notebook_set_show_border (GTK_NOTEBOOK (priv->notebook), FALSE); - gtk_widget_show (priv->notebook); - - priv->button = gtk_button_new (); - gtk_container_add (GTK_CONTAINER (priv->button), priv->notebook); - gtk_widget_show (priv->button); - priv->label_lock = gtk_label_new (""); - gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook), priv->label_lock, NULL); + gtk_misc_set_alignment (GTK_MISC (priv->label_lock), 0, 0.5); + gtk_widget_set_no_show_all (priv->label_lock, TRUE); gtk_widget_show (priv->label_lock); - + gtk_box_pack_start (GTK_BOX (priv->box), priv->label_lock, FALSE, FALSE, 0); + gtk_size_group_add_widget (priv->label_group, priv->label_lock); priv->label_unlock = gtk_label_new (""); - gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook), priv->label_unlock, NULL); - gtk_widget_show (priv->label_unlock); - - priv->label_not_authorized = gtk_label_new (""); - gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook), priv->label_not_authorized, NULL); - gtk_widget_show (priv->label_not_authorized); - - gtk_box_pack_start (GTK_BOX (priv->box), priv->button, FALSE, FALSE, 0); - gtk_widget_show (priv->button); + gtk_misc_set_alignment (GTK_MISC (priv->label_unlock), 0, 0.5); + gtk_widget_set_no_show_all (priv->label_unlock, TRUE); + gtk_box_pack_start (GTK_BOX (priv->box), priv->label_unlock, FALSE, FALSE, 0); + gtk_size_group_add_widget (priv->label_group, priv->label_unlock); - g_signal_connect (priv->eventbox, "button-press-event", - G_CALLBACK (on_button_press), button); - g_signal_connect (priv->button, "clicked", - G_CALLBACK (on_clicked), button); + names[0] = "changes-allow-symbolic"; + names[1] = "changes-allow"; + names[2] = NULL; + priv->icon_unlock = g_themed_icon_new_from_names (names, -1); - gtk_widget_set_no_show_all (priv->box, TRUE); + names[0] = "changes-prevent-symbolic"; + names[1] = "changes-prevent"; + names[2] = NULL; + priv->icon_lock = g_themed_icon_new_from_names (names, -1); update_state (button); } -static void -gtk_lock_button_get_preferred_width (GtkWidget *widget, - gint *minimum, - gint *natural) -{ - GtkLockButtonPrivate *priv = GTK_LOCK_BUTTON (widget)->priv; - - gtk_widget_get_preferred_width (priv->box, minimum, natural); -} - -static void -gtk_lock_button_get_preferred_height (GtkWidget *widget, - gint *minimum, - gint *natural) -{ - GtkLockButtonPrivate *priv = GTK_LOCK_BUTTON (widget)->priv; - - gtk_widget_get_preferred_height (priv->box, minimum, natural); -} - -static void -gtk_lock_button_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GtkLockButtonPrivate *priv = GTK_LOCK_BUTTON (widget)->priv; - GtkRequisition requisition; - GtkAllocation child_allocation; - - gtk_widget_set_allocation (widget, allocation); - gtk_widget_get_preferred_size (priv->box, &requisition, NULL); - child_allocation.x = allocation->x; - child_allocation.y = allocation->y; - child_allocation.width = requisition.width; - child_allocation.height = requisition.height; - gtk_widget_size_allocate (priv->box, &child_allocation); -} - static void gtk_lock_button_class_init (GtkLockButtonClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + GtkButtonClass *button_class = GTK_BUTTON_CLASS (klass); gobject_class->finalize = gtk_lock_button_finalize; gobject_class->get_property = gtk_lock_button_get_property; gobject_class->set_property = gtk_lock_button_set_property; - widget_class->get_preferred_width = gtk_lock_button_get_preferred_width; - widget_class->get_preferred_height = gtk_lock_button_get_preferred_height; - widget_class->size_allocate = gtk_lock_button_size_allocate; + button_class->clicked = gtk_lock_button_clicked; g_type_class_add_private (klass, sizeof (GtkLockButtonPrivate)); @@ -369,15 +299,6 @@ gtk_lock_button_class_init (GtkLockButtonClass *klass) G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, PROP_TEXT_NOT_AUTHORIZED, - g_param_spec_string ("text-not-authorized", - P_("Not Authorized Text"), - P_("The text to display when prompting the user cannot obtain authorization"), - _("Locked"), - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, PROP_TOOLTIP_LOCK, g_param_spec_string ("tooltip-lock", P_("Lock Tooltip"), @@ -406,31 +327,6 @@ gtk_lock_button_class_init (GtkLockButtonClass *klass) G_PARAM_STATIC_STRINGS)); } -static void -update_tooltip (GtkLockButton *button) -{ - GtkLockButtonPrivate *priv = button->priv; - const gchar *tooltip; - - switch (gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook))) - { - case 0: - tooltip = priv->tooltip_lock; - break; - case 1: - tooltip = priv->tooltip_unlock; - break; - case 2: - tooltip = priv->tooltip_not_authorized; - break; - default: - tooltip = ""; - break; - } - - gtk_widget_set_tooltip_markup (priv->box, tooltip); -} - static void update_state (GtkLockButton *button) { @@ -438,10 +334,10 @@ update_state (GtkLockButton *button) gboolean allowed; gboolean can_acquire; gboolean can_release; - gint page; gboolean sensitive; gboolean visible; GIcon *icon; + const gchar *tooltip; if (priv->permission) { @@ -451,68 +347,50 @@ update_state (GtkLockButton *button) } else { - allowed = FALSE; + allowed = TRUE; can_acquire = FALSE; can_release = FALSE; } - visible = TRUE; - sensitive = TRUE; - - if (allowed) + if (allowed && can_release) { - if (can_release) - { - page = 0; - sensitive = TRUE; - } - else - { - page = 0; - visible = FALSE; - } + visible = TRUE; + sensitive = TRUE; + icon = priv->icon_lock; + tooltip = priv->tooltip_lock; } - else + else if (allowed && !can_release) { - if (can_acquire) - { - page = 1; - sensitive = TRUE; - } - else - { - page = 2; - sensitive = FALSE; - } + visible = FALSE; + sensitive = TRUE; + icon = priv->icon_lock; + tooltip = priv->tooltip_lock; } - - if (allowed) + else if (!allowed && can_acquire) { - gchar *names[3]; - - names[0] = "changes-allow-symbolic"; - names[1] = "changes-allow"; - names[2] = NULL; - icon = g_themed_icon_new_from_names (names, -1); + visible = TRUE; + sensitive = TRUE; + icon = priv->icon_unlock; + tooltip = priv->tooltip_unlock; + } + else if (!allowed && !can_acquire) + { + visible = TRUE; + sensitive = FALSE; + icon = priv->icon_unlock; + tooltip = priv->tooltip_not_authorized; } else { - gchar *names[3]; - - names[0] = "changes-prevent-symbolic"; - names[1] = "changes-prevent"; - names[2] = NULL; - icon = g_themed_icon_new_from_names (names, -1); + g_assert_not_reached (); } gtk_image_set_from_gicon (GTK_IMAGE (priv->image), icon, GTK_ICON_SIZE_BUTTON); - g_object_unref (icon); - - gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook), page); - gtk_widget_set_sensitive (priv->box, sensitive); - gtk_widget_set_visible (priv->box, visible); - - update_tooltip (button); + gtk_widget_set_visible (priv->label_lock, allowed); + gtk_widget_set_visible (priv->label_unlock, !allowed); + gtk_widget_set_tooltip_markup (GTK_WIDGET (button), tooltip); + gtk_widget_set_sensitive (GTK_WIDGET (button), sensitive); + gtk_widget_set_visible (GTK_WIDGET (button), visible); } static void @@ -570,9 +448,9 @@ release_cb (GObject *source, } static void -handle_click (GtkLockButton *button) +gtk_lock_button_clicked (GtkButton *button) { - GtkLockButtonPrivate *priv = button->priv; + GtkLockButtonPrivate *priv = GTK_LOCK_BUTTON (button)->priv; /* if we already have a pending interactive check, then do nothing */ if (priv->cancellable != NULL) @@ -604,23 +482,6 @@ handle_click (GtkLockButton *button) } } -static void -on_clicked (GtkButton *button, - gpointer user_data) - -{ - handle_click (GTK_LOCK_BUTTON (user_data)); -} - -static void -on_button_press (GtkWidget *widget, - GdkEventButton *event, - gpointer user_data) -{ - handle_click (GTK_LOCK_BUTTON (user_data)); -} - - /** * gtk_lock_button_new: * @permission: (allow-none): a #GPermission diff --git a/gtk/gtklockbutton.h b/gtk/gtklockbutton.h index abc100ed22..10635c9080 100644 --- a/gtk/gtklockbutton.h +++ b/gtk/gtklockbutton.h @@ -21,7 +21,7 @@ #ifndef __GTK_LOCK_BUTTON_H__ #define __GTK_LOCK_BUTTON_H__ -#include +#include #include G_BEGIN_DECLS @@ -39,14 +39,14 @@ typedef struct _GtkLockButtonPrivate GtkLockButtonPrivate; struct _GtkLockButton { - GtkBin parent; + GtkButton parent; GtkLockButtonPrivate *priv; }; struct _GtkLockButtonClass { - GtkBinClass parent_class; + GtkButtonClass parent_class; void (*reserved0) (void); void (*reserved1) (void); -- 2.30.2